As There are contemporarily a multitude of manufacturers of mobile wireless communication devices, for example mobile telephones, also known as “cell phones” in certain parts of the World. Each manufacturer potentially manufactures several different models or types of mobile devices and/or terminals. The mobile devices and terminals are often provided to users in several different versions, wherein hardware and/or software can vary between versions. For example, variations between versions concerns one or more of:
(i) different screen resolution;
(ii) different colour depths;
(iii) different sets of wireless interfaces, for example 3G and/or 4G and/or Bluetooth and/or Near Field Communication (NFC);
(iv) different types of keyboards;
(v) different languages;
(vi) different configurations of sensors, for example different sensitivities and/or accuracies for the sensors, for example different in-built camera resolutions;
(vii) different computer processing units (CPU's); and
(viii) different software operating systems.
It will be appreciated from the foregoing that there are potentially a huge number of permutations of mobile devices and/or terminals. Moreover, it is contemporarily desirable by the end-users to be able to download to the mobile device(s) one or more software applications, for example “apps” and “plug-ins”, which are compatible with a wide range of mobile devices and/or terminals without encountering compatibility issues.
The huge number of permutations of mobile devices creates practical difficulties for software product developers who are desirous to ensure that their software is correctly executable on a large spectrum of mobile devices and/or terminals. It is impractical for the software developers to purchase examples of each different type of mobile device on which their software products are to be run, for example purchase of hundreds of different mobile devices which is prohibitively expensive.
It is known that there is a possibility to utilize software simulators for testing software. However, it would be even more laborious and costly for a given software product developer both to procure a myriad of mobile devices, and then to develop software simulations of the mobile devices after having characterized their operation. In view of the aforesaid difficulties, a situation arises that software products for mobile devices and/or terminals often face incompatibility issues, namely to the frustration of users, or are uncomfortably expensive when provided in versions which have been tested and verified to execute correctly on a broad spectrum of mobile devices and/or terminals.